import Vue from 'vue'
import App from './App.vue'
import router from './router'
// import './plugins/element.js'

// 导入 vue-table-with-tree-grid 组件
import TreeTableGrid from 'vue-table-with-tree-grid'

// 导入全局样式
import './assets/styles/global.css'
// 导入图标
import './assets/fonts/iconfont.css'
// 导入富文本编辑器
import VueQuillEditor from 'vue-quill-editor'
// import 'quill/dist/quill.core.css' // import styles
// import 'quill/dist/quill.snow.css' // for snow theme
// import 'quill/dist/quill.bubble.css' // for bubble theme

// 导入 dayjs
import dayjs from 'dayjs'

// 导入 nprogress 组件
import NProgress from 'nprogress'
// import 'nprogress/nprogress.css'

// 配置 axios
import axios from 'axios'
// 配置默认的域名

// 这个地址，直接是打不开的
// 需要把这个地址放到 baseURL 位置，替换掉之前的根域名
// 如果 之前后面加了 斜线，这些也需要手动添加
axios.defaults.baseURL = 'http://118.190.160.53:8089/api/private/v1'
// axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1'
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  config.headers.Authorization = window.sessionStorage.getItem('token')
  NProgress.start()
  // return 必不可少
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  NProgress.done()
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})

// 挂载富文本编辑器到 Vue 上
Vue.use(VueQuillEditor)

// 将 axios 挂载到 Vue 的原型对象上
Vue.prototype.$http = axios
Vue.prototype.$dayjs = dayjs

// 将 TreeTableGrid 挂载到 Vue.component 方法上
Vue.component('tree-table', TreeTableGrid)

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
